package com.corechina.apex_osswords.common;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

/**
 * @author cc
 */
@Data
@Slf4j
@EqualsAndHashCode(callSuper=true)
public class APEXOSSWordsException extends RuntimeException {
	private static final long serialVersionUID = 1L;

	private String msg;
	private int code = 500;

	public APEXOSSWordsException(String msg) {
		super(msg);
		this.msg = msg;
	}

	public APEXOSSWordsException(String msg, Throwable e) {
		super(msg, e);
		this.msg = msg;
	}

	public APEXOSSWordsException(String msg, Throwable e , String logMsg) {
		super(msg, e);
		this.msg = msg;
		if(!StringUtils.isEmpty(logMsg)){
			log.error(logMsg,e);
		}
	}

	public APEXOSSWordsException(int code, String msg) {
		super(msg);
		this.msg = msg;
		this.code = code;
	}

	public APEXOSSWordsException(String msg, int code, Throwable e) {
		super(msg, e);
		this.msg = msg;
		this.code = code;
	}

	public APEXOSSWordsException(String msg, String logMsg) {
		super(msg);
		this.msg = msg;
		if(!StringUtils.isEmpty(logMsg)){
			log.error(logMsg);
		}
	}
}
